package org.zgflex.desktop.selection
{
	import flash.geom.Point;
	
	import mx.containers.Canvas;
	
	import org.zgflex.desktop.IIconSelector;
	
	/**
	 * The interface to be implemented by every selection area implementation. 
	 * @author dankok
	 * 
	 */	
	public interface ISelectionArea
	{
		/**
		 * Sets a target (desktop).
		 * @param value
		 * 
		 */		
		function set target(value:IIconSelector):void;
		
		/**
		 * Gets a target (desktop).
		 * @return 
		 * 
		 */		
		function get target():IIconSelector;
		
		/**
		 * Sets a surface to draw a selection rectangle to. 
		 * @param value
		 * 
		 */		
		function set surface(value:Canvas):void;
		
		/**
		 * Gets a surface to draw a selection rectangle to. 
		 * @param value
		 * 
		 */	
		function get surface():Canvas;
		
		/**
		 * Starts drawing a rectangle.
		 * @param point
		 * 
		 */		
		function start(point:Point):void;
		
		/**
		 * Stretches a rectangle.
		 * @param point
		 * 
		 */		
		function move(point:Point, ctrlPressed:Boolean = false):void;
		
		/**
		 * Stops a selection process. 
		 * 
		 */		
		function stop():void;
	}
}